#ifndef COMMAND_H
#define COMMAND_H

/* include */
#include "config.h"

/* struct defination */
typedef int (*func_ptr) (char *argv[]); 	/* type of function pointer */

typedef struct func_map_t {
	const char *name; 		/* function name */
	func_ptr func; 			/* function pointer */
} func_map_t;

/* function declaration */
int _copy(char *argv[]);
int _hi(char *argv[]);
int _clear(char *argv[]);
int _printenv(char *argv[]);
int _moverect(char *argv[]);
int _help(char *argv[]);
int _sysinfo(char *argv[]);
int _ls(char *argv[]);
int _pwd(char *argv[]);
int _cd(char *argv[]);
int _tee(char *argv[]);
int _head(char *argv[]);
int _tail(char *argv[]);
int _kilo(char *argv[]);
int _touch(char *argv[]);
int _echo(char *argv[]);
int _cat(char *argv[]);
int _mkdir(char *argv[]);
int _rmdir(char *argv[]);
int _rm(char *argv[]);
int _mv(char *argv[]);
int _ln(char *argv[]);
int _history(char *argv[]);
int _tree(char *argv[]);
void exit_prog_bar();

#endif
